perm filename MOTION.SAI[PNT,HE] blob
sn#238948 filedate 1976-10-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 REQUIRE "ALAID.REL[HAL,HE]" LOAD_MODULE
C00006 ENDMK
C⊗;
REQUIRE "ALAID.REL[HAL,HE]" LOAD_MODULE;
EXTERNAL RECURSIVE STRING PROCEDURE TREATREQUEST(STRING STR; INTEGER SOURCE(1));
string procedure default_file(string file, def_ext);
begin integer name, ext, ppn; string strfile, strppn;
name←cvfil(file, ext, ppn);
if name=0 then return(null);
if ext=0 then ext←cvsix(def_ext);
if ppn=0
then strppn←null
else
begin
strppn←cvsix(ppn);
strppn ← "[" & strppn[1 for 3] & "," & strppn[4 for 3] & "]";
end;
return(strfile←cv6str(name) & "." & cv6str(ext) & strppn);
end;
procedure init_symbols;
begin string sym_file;
boolean procedure treatrequest_lost(string arg);
return(equ(treatrequest(arg, 1), "CANT"));
sym_file ← "SLAVE.ALS[PNT,PJ]";
while treatrequest_lost("SYMBOLS " & sym_file) do
begin
outstr(sym_file&" not found try: "); sym_file ← inchwl;
sym_file ← default_file(sym_file, "ALS");
end;
print("Reading ", sym_file, crlf);
end;
require init_symbols initialization;
procedure read_blue(real array a);
begin string str; integer brc, i, j;
comment treatrequest("WAIT (NAME ELFREADY)");
str ← treatrequest("GETVAL (NAME BARM)"); brc ← 0;
for i ← 1 step 1 until 4 do "row by row"
begin "read trans"
for j ← 1 step 1 until 4 do
begin if brc<0 then done "read trans"; a[i, j] ← realscan(str, brc) end;
end "read trans";
if ¬(i=j=4) then print("read_blue lost");
end;
procedure goblue(real array bxf);
begin
string procedure cvbxfs;
begin string str; integer i, j, width, digits;
str ← "TRANS"; getformat(width, digits); setformat(10, 4);
for i ← 1 step 1 until 4 do "row by row"
for j ← 1 step 1 until 4 do str ← str & cvf(bxf[i,j]);
setformat(width, digits);
return(str);
end;
treatrequest("WAIT (NAME ELFREADY)");
treatrequest("GETVAL (NAME ELFREADY)");
treatrequest("SETVAL (NAME DEST) (" & cvbxfs & ")");
treatrequest("SIGNAL (NAME TENREADY)");
end;